﻿#include"f.h"
//int main()
//{
//	//const int a = 2;
//	////error C2440 : “初始化”: 无法从“const int”转换为“int& ”
//	////int& b = a;
//	//const int& b = a;
//
//	//int c = 3;
//	//const int& d = c;
//	//return 0;
//
//	//int k = 10;
//	////error C2440 : “初始化”: 无法从“int”转换为“int& ”
//	////int& m = k * 3;
//	//const int& m = k * 3;
//
//	//double n = 12.34;
//	////error C2440: “初始化”: 无法从“double”转换为“int &”
//	////int& h = n;
//	//const int& h = n;
//
//	/*int a = 3; int c = 6;
//	int& b = a;
//	b = c;
//	cout << a;
//
//	int e = 1; int d = 2;
//	int* p = &e;
//	p = &d;
//	cout << e;*/
//
//	
//}


//inline int add(int a, int b)
//{
//	int ret = a + b;
//	return ret;
//}
//
//int main()
//{
//	// 可以通过汇编观察程序是否展开 
//    // 有call Add语句就是没有展开，没有就是展开了 
//	int ret = add(1, 2);
//	cout << add(1, 2) * 5;
//	return 0;
//}

//#include<iostream>
//using namespace std;
//// 实现⼀个ADD宏函数的常⻅问题 
////#define ADD(int a, int b) return a + b;
////#define ADD(a, b) a + b;
////#define ADD(a, b) (a + b)
//// 正确的宏实现 
//#define ADD(a, b) ((a) + (b))
//// 为什么不能加分号? 
//// 为什么要加外⾯的括号? 
//// 为什么要加⾥⾯的括号? 
//int main()
//{
//	int ret = ADD(1, 2);
//	cout << ADD(1, 2) << endl;
//	cout << ADD(1, 2) * 5 << endl;
//	int x = 1, y = 2;
//	ADD(x & y, x | y); // -> (x&y+x|y)
//	return 0;
//}


//int main()
//{
//	f1(1);
//	f1(2);
//}

void f(int x)
{
	cout << "f(int x)" << endl;
}

void f(int* xe)
{
	cout << "f(int* xe)" << endl;
}

int main()
{
	f(0);
	f(nullptr);
}